
#include <bur/plctypes.h>

#ifdef _DEFAULT_INCLUDES
	#include <AsDefault.h>
#endif

void _INIT ProgramInit(void)
{

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// application specific segments

	brsstrcpy((UDINT)&PlkIF, (UDINT)&"SL1.IF1");
	
	LlmSegmentPLK[1]	= 1;		LlmSegment[1]	= (UDINT)gAssembly.Segment[1].Ref;		//	(UDINT)&Seg_01;		
	LlmSegmentPLK[2]	= 2;		LlmSegment[2]	= (UDINT)gAssembly.Segment[2].Ref;		//	(UDINT)&Seg_02;		
	LlmSegmentPLK[3]	= 3;		LlmSegment[3]	= (UDINT)gAssembly.Segment[3].Ref;		//	(UDINT)&Seg_03;		
	LlmSegmentPLK[4]	= 4;		LlmSegment[4]	= (UDINT)gAssembly.Segment[4].Ref;		//	(UDINT)&Seg_04;		
	LlmSegmentPLK[5]	= 5;		LlmSegment[5]	= (UDINT)gAssembly.Segment[5].Ref;		//	(UDINT)&Seg_05;		
	LlmSegmentPLK[6]	= 6;		LlmSegment[6]	= (UDINT)gAssembly.Segment[6].Ref;		//	(UDINT)&Seg_06;		
	LlmSegmentPLK[7]	= 7;		LlmSegment[7]	= (UDINT)gAssembly.Segment[7].Ref;		//	(UDINT)&Seg_07;		
	LlmSegmentPLK[8]	= 8;		LlmSegment[8]	= (UDINT)gAssembly.Segment[8].Ref;		//	(UDINT)&Seg_08;		
	LlmSegmentPLK[9]	= 9;		LlmSegment[9]	= (UDINT)gAssembly.Segment[9].Ref;		//	(UDINT)&Seg_09;		
	LlmSegmentPLK[10]	= 10;		LlmSegment[10]	= (UDINT)gAssembly.Segment[10].Ref;		//	(UDINT)&Seg_10;		
	LlmSegmentPLK[11]	= 11;		LlmSegment[11]	= (UDINT)gAssembly.Segment[11].Ref;		//	(UDINT)&Seg_11;		
	LlmSegmentPLK[12]	= 12;		LlmSegment[12]	= (UDINT)gAssembly.Segment[12].Ref;		//	(UDINT)&Seg_12;		
	LlmSegmentPLK[13]	= 13;		LlmSegment[13]	= (UDINT)gAssembly.Segment[13].Ref;		//	(UDINT)&Seg_13;		
	LlmSegmentPLK[14]	= 14;		LlmSegment[14]	= (UDINT)gAssembly.Segment[14].Ref;		//	(UDINT)&Seg_14;		
	LlmSegmentPLK[15]	= 15;		LlmSegment[15]	= (UDINT)gAssembly.Segment[15].Ref;		//	(UDINT)&Seg_15;		
	LlmSegmentPLK[16]	= 16;		LlmSegment[16]	= (UDINT)gAssembly.Segment[16].Ref;		//	(UDINT)&Seg_16;		
	LlmSegmentPLK[17]	= 17;		LlmSegment[17]	= (UDINT)gAssembly.Segment[17].Ref;		//	(UDINT)&Seg_17;		
	LlmSegmentPLK[18]	= 18;		LlmSegment[18]	= (UDINT)gAssembly.Segment[18].Ref;		//	(UDINT)&Seg_18;		
	LlmSegmentPLK[19]	= 19;		LlmSegment[19]	= (UDINT)gAssembly.Segment[19].Ref;		//	(UDINT)&Seg_19;		
	LlmSegmentPLK[20]	= 20;		LlmSegment[20]	= (UDINT)gAssembly.Segment[20].Ref;		//	(UDINT)&Seg_20;		
	LlmSegmentPLK[21]	= 21;		LlmSegment[21]	= (UDINT)gAssembly.Segment[21].Ref;		//	(UDINT)&Seg_21;		
	LlmSegmentPLK[22]	= 22;		LlmSegment[22]	= (UDINT)gAssembly.Segment[22].Ref;		//	(UDINT)&Seg_22;		
	LlmSegmentPLK[23]	= 23;		LlmSegment[23]	= (UDINT)gAssembly.Segment[23].Ref;		//	(UDINT)&Seg_23;		
	LlmSegmentPLK[24]	= 24;		LlmSegment[24]	= (UDINT)gAssembly.Segment[24].Ref;		//	(UDINT)&Seg_24;		
	LlmSegmentPLK[25]	= 25;		LlmSegment[25]	= (UDINT)gAssembly.Segment[25].Ref;		//	(UDINT)&Seg_25;		
	LlmSegmentPLK[26]	= 26;		LlmSegment[26]	= (UDINT)gAssembly.Segment[26].Ref;		//	(UDINT)&Seg_26;		
	LlmSegmentPLK[27]	= 27;		LlmSegment[27]	= (UDINT)gAssembly.Segment[27].Ref;		//	(UDINT)&Seg_27;		
	LlmSegmentPLK[28]	= 28;		LlmSegment[28]	= (UDINT)gAssembly.Segment[28].Ref;		//	(UDINT)&Seg_28;		
	LlmSegmentPLK[29]	= 29;		LlmSegment[29]	= (UDINT)gAssembly.Segment[29].Ref;		//	(UDINT)&Seg_29;		
	LlmSegmentPLK[30]	= 30;		LlmSegment[30]	= (UDINT)gAssembly.Segment[30].Ref;		//	(UDINT)&Seg_30;		




	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	// init task variables
	// !!! DO NOT CHANGE !!!
	
	StatusBufferAlloc = TMP_alloc(MAX_TRACE_FILELEN, (void**)&AdrFileBuffer);
	
	brsmemset((UDINT)&EpromDataBurn, 0, sizeof(EpromDataBurn));
	brsmemset((UDINT)&EpromDataLoad, 0, sizeof(EpromDataLoad));
	
	brsmemset((UDINT)&gCalibAMR, 0, sizeof(gCalibAMR));
	gCalibAMR.LockCmdBurn	= 1;
	gCalibAMR.LockCmdLoad	= 0;
	gCalibAMR.LockCmdCheck	= 1;

	gAutoCalibAMR.CmdCalib = 0;
	gAutoCalibAMR.CmdCheck = 0;
	gAutoCalibAMR.Segment[0] = 0;
	gAutoCalibAMR.Active = 0;
	gCalibAMR.MoveSequenceIndex = gAutoCalibAMR.MoveSequenceIndex;		// restore remanent MoveSequenceIndex

	EdgeSegment = gCalibAMR.Segment;
	
	
}
